Welcome to pandas!

3.9 获取form表单上传的多个文件

可以同时上传多个文件。

前端上传的多个文件使用的是不同的key


Html8

< html >

< head >

< meta charset="UTF-8" >

< meta http-equiv="X-UA-Compatible" content="ie=edge" >

< title > Document < /title >

< /head >

< body >

< form action="http://127.0.0.1:8000/app03/test8" method="post" enctype="multipart/form-data" >

< P > 请选择文件: < input type="file" name="file22" > < /P >

< P > 请选择文件: < input type="file" name="file33" > < /P >

< input type="submit" value="上传" >

< /form >

< /body >

< /html >


Urls:

from django.urls import path

from . import views

urlpatterns = [

path("test",views.test),

#一旦调用test1,那么kwargs将会以关键字的a=100,b=200这样的形式传给test1

path("test1", views.test1,kwargs={"a":100,"b":200}),

#test2(request,year,month

path("test2/ < year > / < month > ", views.test2),

path("test3", views.test3),

path("test5", views.test5),

path("test6", views.test6),

path("test7", views.test7),

path("test8", views.test8),

]


views:

后端视图。使用request.FILES.get(“”)接收数据

def test8(request):

for key in ["file22","file33"]:

file=request.FILES.get(key)

with open(file.name,"wb") as f:

f.write(file.read())

return HttpResponse("显示form")

返回:

上传两个文件到url同文件夹下面

[26/May/2024 16:20:00] "POST /app03/test8 HTTP/1.1" 200 10

[26/May/2024 16:21:38] "POST /app03/test8 HTTP/1.1" 200 10

前端上传的多个文件使用的是相同的key


URL

from django.urls import path

from . import views

urlpatterns = [

path("test",views.test),

#一旦调用test1,那么kwargs将会以关键字的a=100,b=200这样的形式传给test1

path("test1", views.test1,kwargs={"a":100,"b":200}),

#test2(request,year,month

path("test2/ < year > / < month > ", views.test2),

path("test3", views.test3),

path("test5", views.test5),

path("test6", views.test6),

path("test7", views.test7),

path("test8", views.test8),

path("test9", views.test9),

]


views:

def test9(request):

print(request.FILES)

for file in request.FILES.getlist("file22"):

with open(file.name,"wb") as f:

f.write(file.read())

return HttpResponse("显示form")


html9:

< html >

< head >

< meta charset="UTF-8" >

< meta http-equiv="X-UA-Compatible" content="ie=edge" >

< title > Document < /title >

< /head >

< body >

< h1 > 上传文件 < /h1 >

< form action="http://127.0.0.1:8000/app03/test9" method="post" enctype="multipart/form-data" >

< P > 请选择文件: < input type="file" name="file22" multiple > < /P >

< input type="submit" value="上传" >

< /form >

< /body >

< /html >

返回:

上传选择的多个文件到url同文件夹下面

< MultiValueDict: {'file22': [ < InMemoryUploadedFile: fido2.dll (application/x-msdownload) > , < InMemoryUploadedFile: fido2.lib (application/octet-stream) > ]} >

[26/May/2024 16:46:51] "POST /app03/test9 HTTP/1.1" 200 10